package com.ruoyi.restaurant.service.impl;

import java.util.ArrayList;
import java.util.List;

import com.ruoyi.restaurant.vo.TableNumsVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.restaurant.mapper.SysTableMapper;
import com.ruoyi.restaurant.domain.SysTable;
import com.ruoyi.restaurant.service.ISysTableService;

/**
 * 餐台管理Service业务层处理
 * 
 * @author ruoyi
 * @date 2022-04-12
 */
@Service
public class SysTableServiceImpl implements ISysTableService 
{
    @Autowired
    private SysTableMapper sysTableMapper;

    /**
     * 查询餐台管理
     * 
     * @param tableId 餐台管理主键
     * @return 餐台管理
     */
    @Override
    public SysTable selectSysTableByTableId(Integer tableId)
    {
        return sysTableMapper.selectSysTableByTableId(tableId);
    }

    /**
     * 查询餐台管理列表
     * 
     * @param sysTable 餐台管理
     * @return 餐台管理
     */
    @Override
    public List<SysTable> selectSysTableList(SysTable sysTable)
    {
        return sysTableMapper.selectSysTableList(sysTable);
    }

    /**
     * 新增餐台管理
     * 
     * @param sysTable 餐台管理
     * @return 结果
     */
    @Override
    public int insertSysTable(SysTable sysTable)
    {
        return sysTableMapper.insertSysTable(sysTable);
    }

    /**
     * 修改餐台管理
     * 
     * @param sysTable 餐台管理
     * @return 结果
     */
    @Override
    public int updateSysTable(SysTable sysTable)
    {
        return sysTableMapper.updateSysTable(sysTable);
    }

    /**
     * 批量删除餐台管理
     * 
     * @param tableIds 需要删除的餐台管理主键
     * @return 结果
     */
    @Override
    public int deleteSysTableByTableIds(Integer[] tableIds)
    {
        return sysTableMapper.deleteSysTableByTableIds(tableIds);
    }

    /**
     * 删除餐台管理信息
     * 
     * @param tableId 餐台管理主键
     * @return 结果
     */
    @Override
    public int deleteSysTableByTableId(Integer tableId)
    {
        return sysTableMapper.deleteSysTableByTableId(tableId);
    }

    /**
     * 统计每张table发生的订单数量
     */
    @Override
    public List<TableNumsVo> CountOrdersByTableId(){
        List<SysTable> tableList = this.sysTableMapper.selectSysTableList(new SysTable());
        List<TableNumsVo> tableNumsVOList = new ArrayList<>();
        for(SysTable sysTable : tableList){
            TableNumsVo tableNumsVo = new TableNumsVo();
            int count = this.sysTableMapper.countOrdersByTableId(sysTable.getTableId());
            tableNumsVo.setValue(count);
            tableNumsVOList.add(tableNumsVo);
        }
        return tableNumsVOList;
    }
}
